home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / modelers / geomview / sun4beta.lha / Geomview / modules / sun4 / gvclock < prev   
Encoding:
Text File  |  1993-02-27  |  4.6 KB  |  171 lines

  1. #!/bin/sh
  2.  
  3. if test $CPU = next 
  4. then
  5.   lang=gawk
  6. else
  7.   lang=nawk
  8. fi 
  9.  
  10. $lang '
  11. BEGIN {
  12.  
  13.   printf("(progn ")
  14.  
  15.   # Print out the clock face
  16.   printf("(geometry face { LIST ");
  17.   printf("{ INST unit { OFF 8 6 0 \n")
  18.   printf("-.05 .9 -.3\n")
  19.   printf(".05 .9 -.3\n")
  20.   printf(".05 1.1 -.3\n")
  21.   printf("-.05 1.1 -.3\n")
  22.   printf("-.05 .9 -.1\n")
  23.   printf(".05 .9 -.1\n")
  24.   printf(".05 1.1 -.1\n")
  25.   printf("-.05 1.1 -.1\n")
  26.   printf("4 0 1 2 3\n")
  27.   printf("4 4 5 6 7\n")
  28.   printf("4 0 4 7 3\n")
  29.   printf("4 0 1 5 4\n")
  30.   printf("4 1 5 6 2\n")
  31.   printf("4 2 6 7 3\n")
  32.   printf("}\ntlist\n")
  33.   for (i = 1; i < 12; ++i) {
  34.     ang = i * 3.14159 / 6.0;
  35.     printf("%g %g 0 0\n", cos(ang), -sin(ang));
  36.     printf("%g %g 0 0\n", sin(ang), cos(ang));
  37.     printf("0 0 1 0\n");
  38.     printf("0 0 0 1\n\n");
  39.   }
  40.   printf("}\n");
  41.   printf("{appearance {material {diffuse 0 .75 .75}}");
  42.   printf("INST\n");
  43.   printf("unit OFF\n");
  44.   printf("20 12 30\n");
  45.   printf("    1.214124 0.000000 1.589309\n");
  46.   printf("    0.375185 1.154701 1.589309\n");
  47.   printf("    -0.982247 0.713644 1.589309\n");
  48.   printf("    -0.982247 -0.713644 1.589309\n");
  49.   printf("    0.375185 -1.154701 1.589309\n");
  50.   printf("    1.964494 0.000000 0.375185\n");
  51.   printf("    0.607062 1.868345 0.375185\n");
  52.   printf("    -1.589309 1.154701 0.375185\n");
  53.   printf("    -1.589309 -1.154701 0.375185\n");
  54.   printf("    0.607062 -1.868345 0.375185\n");
  55.   printf("    1.589309 1.154701 -0.375185\n");
  56.   printf("    -0.607062 1.868345 -0.375185\n");
  57.   printf("    -1.964494 0.000000 -0.375185\n");
  58.   printf("    -0.607062 -1.868345 -0.375185\n");
  59.   printf("    1.589309 -1.154701 -0.375185\n");
  60.   printf("    0.982247 0.713644 -1.589309\n");
  61.   printf("    -0.375185 1.154701 -1.589309\n");
  62.   printf("    -1.214124 0.000000 -1.589309\n");
  63.   printf("    -0.375185 -1.154701 -1.589309\n");
  64.   printf("    0.982247 -0.713644 -1.589309\n");
  65.   printf("    5 0 1 2 3 4\n");
  66.   printf("    5 0 5 10 6 1\n");
  67.   printf("    5 1 6 11 7 2\n");
  68.   printf("    5 2 7 12 8 3\n");
  69.   printf("    5 3 8 13 9 4\n");
  70.   printf("    5 4 9 14 5 0\n");
  71.   printf("    5 15 10 5 14 19\n");
  72.   printf("    5 16 11 6 10 15\n");
  73.   printf("    5 17 12 7 11 16\n");
  74.   printf("    5 18 13 8 12 17\n");
  75.   printf("    5 19 14 9 13 18\n");
  76.   printf("    5 19 18 17 16 15\n");
  77.   printf("transform\n");
  78.   printf("0.07  0  0    0\n");
  79.   printf("0   0.07  0   0\n");
  80.   printf("0  0   0.07   0\n");
  81.   printf("0 1 -.2 1\n");
  82.   printf("}\n");
  83.  
  84.   printf("  })\n");
  85.  
  86.  
  87.   # Hour hand
  88.   printf("(geometry hour { INST unit {")
  89.   unitcube()
  90.   printf("}\n")
  91.   printf("tlist\n")
  92.   printf(".12 0 0 0\n")
  93.   printf("0 .28 0 0\n")
  94.   printf("0 0 .05 0\n")
  95.   printf("0 .22 0 1\n");
  96.   printf("})")
  97.  
  98.   # Minute hand
  99.   printf("(geometry minute { INST unit {")
  100.   unitcube();
  101.   printf("}\n")
  102.   printf("tlist\n")
  103.   printf(".07 0 0 0\n")
  104.   printf("0 .55 0 0\n")
  105.   printf("0 0 .05 0\n")
  106.   printf("0 .45 .1 1\n")
  107.   printf("})\n");
  108.  
  109.   # Second hand
  110.   printf("(geometry second { INST unit {")
  111.   unitcube();
  112.   printf("}\n")
  113.   printf("tlist\n")
  114.   printf(".02 0 0 0\n")
  115.   printf("0 .6 0 0\n")
  116.   printf("0 0 .05 0\n")
  117.   printf("0 .45 .2 1\n")
  118.   printf("})\n");
  119.  
  120.   printf("(normalization face none)")
  121.   printf("(normalization hour none)")
  122.   printf("(normalization minute none)")
  123.   printf("(normalization second none)")
  124.  
  125.   printf("(bbox-draw face no)")
  126.   printf("(bbox-draw hour no)")
  127.   printf("(bbox-draw minute no)")
  128.   printf("(bbox-draw second no)")
  129.  
  130.   printf("(merge-ap face {appearance +edge material { diffuse 0 0 .7}})")
  131.   printf("(merge-ap hour {appearance +edge material { diffuse .54 .15 1}})")
  132.   printf("(merge-ap minute {appearance +edge material { diffuse .13 .82 .51}})")
  133.   printf("(merge-ap second {appearance +edge material { diffuse .82 0 0 }})")
  134.  
  135.   time = substr(ARGV[4], 7, 2) + 0.0;
  136.   printf("(transform-set second second second rotate 0 0 %g)",
  137.     (time / 60.0) * 3.14159 * 2.0)
  138.  
  139.   time = time + (substr(ARGV[4], 4, 2) + 0.0)*60.0
  140.   printf("(transform-set minute minute minute rotate 0 0 %g)",
  141.     (time / 3600.0) * 3.14159 * 2.0)
  142.  
  143.   time += (substr(ARGV[4], 1, 2)%12) * 3600.0
  144.   printf("(transform-set hour hour hour rotate 0 0 %g)",
  145.     (time / 43200.0) * 3.14159 * 2.0)
  146.  
  147.   printf("(transform-incr hour hour hour rotate 0 0 3.14159 21600)")
  148.   printf("(transform-incr minute minute minute rotate 0 0 3.14159 1800)")
  149.   printf("(transform-incr second second second rotate 0 0 3.14159 30)")
  150.  
  151.   printf(")")
  152. }
  153.  
  154. function unitcube() {
  155.   printf("OFF\n8 6 0\n")
  156.   printf("-1 -1 -1\n")
  157.   printf("1 -1 -1\n")
  158.   printf("1 1 -1\n")
  159.   printf("-1 1 -1\n") 
  160.   printf("-1 -1 1\n")
  161.   printf("1 -1 1\n")
  162.   printf("1 1 1\n")
  163.   printf("-1 1 1\n")
  164.   printf("4 0 1 2 3\n")
  165.   printf("4 4 5 6 7\n")
  166.   printf("4 0 4 7 3\n")
  167.   printf("4 0 1 5 4\n")
  168.   printf("4 1 5 6 2\n")
  169.   printf("4 2 6 7 3\n")
  170. }
  171. ' `date`